#define _CRT_SECURE_NO_WARNINGS

//#include <stdio.h>
//#include <string.h>
//
//int main()
//{
//	char arr1[] = "123456";
//	char arr2[10] = { 0 };
//	strncpy(arr2, arr1, 4);
//	printf("%s", arr2);
//
//	return 0;
//}
//
//
//#include <stdio.h>
//#include <string.h>
//
//int main()
//{
//    char arr1[] = "123456";
//    char arr2[20] = "abcde";
//    char arr3[20] = "abcde";
//    strncat(arr2, arr1, 4);//最后一个参数代表操作的字符数
//    strncat(arr3, arr1, 10);
//    printf("%s\n%s", arr2, arr3);
//
//    return 0;
//}
//
//
//
//
//#include <stdio.h>
//#include <string.h>
//
//int main()
//{
//    char arr1[20] = "abcdefghi";
//    char arr2[20] = "abcde";
//    int a = strncmp(arr2, arr1, 4);//最后一个参数代表操作的字符数
//    int b = strncmp(arr2, arr1, 14);//最后一个参数代表操作的字符数
//
//    printf("%d %d", a, b);
//
//    return 0;
//}
//
//#include <stdio.h>
//#include <string.h>
//
//int main()
//{
//    char arr1[20] = "abcdefghi";
//    char arr2[20] = "\0";
//    char arr3[20] = "cdez";
//    char* p1 = strstr(arr1, arr2);
//    char* p2 = strstr(arr1, arr3);
//
//    printf("%s\n", p1);
//    printf("%s\n", p2);
//
//    return 0;
//}
//
//
#include <stdio.h>

//char* my_strstr(const char* str1, const char* str2)
//{
//	if (*str2 == '\0')
//	{
//		return str1;
//	}
//	char* p1 = str1;
//	char* p2 = str2;
//	int n = 0;
//	for (;;)
//	{
//		for (; *p1 == *p2 && *p1 && *p2;)
//		{
//			p1++;
//			p2++;
//			n++;
//		}
//		if (*p1 == '\0' && *p2 != '\0')
//		{
//			return NULL;
//		}
//		else if (*p2 == '\0')
//		{
//			return p1 - n;
//		}
//		if (*p1 != *p2)
//		{
//			p1 -= n - 1;
//			p2 = str2;
//			n = 0;
//		}
//	}
//}

char* my_strstr(const char* str1, const char* str2)
{
	if (!*str2)
	{
		return str1;
	}
	char* p1 = str1;
	char* p2 = str2;
	for (; *str1;)
	{
		p1 = str1;
		p2 = str2;
		for (; *p1 == *p2 && *p1 && *p2; p1++, p2++);
		if ('\0' == *p2)
		{
			return str1;
		}
		str1++;
	}
	return NULL;
}

int main()
{
	char str1[] = "1233456";
	char str2[] = "";
	char* a = my_strstr(str1, str2);
	printf("%s", a);

	return 0;
}


